package com.tiancheng.trade.authserver.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tiancheng.trade.authserver.entity.AuthToken;
import com.tiancheng.trade.authserver.enums.ThirdPlatformEnums;
import com.tiancheng.trade.authserver.enums.TokenTypeEnum;
import com.tiancheng.trade.commom.web.model.SubjectProfile;

/**
 * @Author: likailun
 * @Description: token service
 * @Date: create in 2024/10/21 17:18
 */
public interface IAuthTokenService extends IService<AuthToken> {
    /**
     * 生成token, 会保存token
     *
     * @param type          token类型
     * @param expiresIn     有效期,秒
     * @param thirdPlatform 第三方平台
     * @param thirdClientId 第三方clientId
     * @param profile       用户配置
     * @param thirdToken    第三方平台的token,没有则传null
     */
    String generate(TokenTypeEnum type, long expiresIn, ThirdPlatformEnums thirdPlatform, String thirdClientId,
                    SubjectProfile profile, String thirdToken);
}
